//
//  HLIMKitMessageCellFactory.m
//  YueYue
//
//  Created by hulu001 on 2024/1/12.
//

#import "HLIMKitMessageCellFactory.h"

@implementation HLIMKitMessageCellFactory


- (HLIMKitMesssageCell *)cellInTable:(UITableView *)tableView forMessageMode:(HLIMKitMessageModel *)model
{
    id<HLIMCellLayoutConfig> layoutConfig = [HLChatKit.shareSDK cellConfig];
    NSString *identity = [layoutConfig cellContent:model];
    HLIMKitMesssageCell *cell = [tableView dequeueReusableCellWithIdentifier:identity];
    if (!cell) {
        NSString *clz = HLChatKit.shareSDK.config.messageCellClass;
        [tableView registerClass:NSClassFromString(clz) forCellReuseIdentifier:identity];
        cell = [tableView dequeueReusableCellWithIdentifier:identity];
    }
    [cell refreshData:model];
    return (HLIMKitMesssageCell *)cell;
}

- (HLIMKitSessionTimeCell *)cellInTable:(UITableView *)tableView forTimeMode:(HLIMKitTimeModel *)model
{
    NSString *identity = @"time";
    HLIMKitSessionTimeCell *cell = [tableView dequeueReusableCellWithIdentifier:identity];
    if (!cell) {
        NSString *clz = @"HLIMKitSessionTimeCell";
        [tableView registerClass:NSClassFromString(clz) forCellReuseIdentifier:identity];
        cell = [tableView dequeueReusableCellWithIdentifier:identity];
    }
    [cell refreshData:model];
    return cell;
}

- (HLIMKitSystemMessageCell *)cellInTable:(UITableView *)tableView forSystemModel:(HLIMKitSystemMessageModel *)model
{
    NSString *identity = @"system";
    HLIMKitSystemMessageCell *cell = [tableView dequeueReusableCellWithIdentifier:identity];
    if (!cell) {
        NSString *clz = @"HLIMKitSystemMessageCell";
        [tableView registerClass:NSClassFromString(clz) forCellReuseIdentifier:identity];
        cell = [tableView dequeueReusableCellWithIdentifier:identity];
    }
    [cell refreshData:model];
    return cell;
}

@end
